﻿Public Class DproformaDscto

    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal pProformaDscto As EproformaDscto) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaDscto_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaDscto.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaDscto.idEtapa
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = pProformaDscto.idProforma
                cmd.Parameters.Add("@idDscto", SqlDbType.Int).Value = pProformaDscto.idDscto
                cmd.Parameters.Add("@dsctoMin", SqlDbType.Decimal, 15, 2).Value = pProformaDscto.dsctoMin
                cmd.Parameters.Add("@dsctoMax", SqlDbType.Decimal, 15, 2).Value = pProformaDscto.dsctoMax
                cmd.Parameters.Add("@monto", SqlDbType.Decimal, 15, 2).Value = pProformaDscto.monto
                cmd.Parameters.Add("@dscto", SqlDbType.Decimal, 15, 2).Value = pProformaDscto.dscto
                cmd.Parameters.Add("@dsctoMonto", SqlDbType.Decimal, 15, 2).Value = pProformaDscto.dsctoMonto
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pProformaDscto.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Filtrar(ByVal descEmpresa As String, ByVal pProforma As EproformaCabecera) As List(Of EproformaDscto)
        Dim proformaDsctos As List(Of EproformaDscto) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaDscto_fil", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProforma.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProforma.idEtapa
                cmd.Parameters.Add("@idproforma", SqlDbType.Int).Value = pProforma.idProforma
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformaDsctos = New List(Of EproformaDscto)
                            Dim proformaDscto As EproformaDscto = Nothing
                            Do While dr.Read
                                proformaDscto = New EproformaDscto( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetInt32(dr.GetOrdinal("idProformaDscto")), _
                                    dr.GetInt32(dr.GetOrdinal("idDscto")), _
                                    dr.GetString(dr.GetOrdinal("descDscto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMin")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMax")), _
                                    dr.GetDecimal(dr.GetOrdinal("monto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dscto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMonto")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                                proformaDsctos.Add(proformaDscto)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformaDsctos
    End Function

End Class
